﻿Public Interface IRegexProject
    Inherits IModelBase

    ReadOnly Property LiteralTextInput As ILiteralTextInput
    ReadOnly Property DirectoryInput As IDirectoryInput
    ReadOnly Property MultipleFilesInput As IMultipleFilesInput
    ReadOnly Property RegistryInput As IRegistryInput

    ReadOnly Property RegexHistory As Stack(Of Tuple(Of String, RegexOptions))

    ''' <summary>
    ''' Records a Regex in the change log.
    ''' </summary>
    Sub RecordRegex(pattern As String, options As RegexOptions)

    ''' <summary>
    ''' Formats the most recent Regex in <see cref="RegexHistory"/> using the given <see cref="IRegexFormatter"/>.
    ''' </summary>
    Function FormatRegex(formatter As IRegexFormatter) As String

End Interface
